R-kurs 1: Hvordan komme igang med R

R Innføring

Denne posten er slidene til et veldig kort kurs jeg holdt på ISF for nybegynnere i R. Jeg har ikke skrevet ut kurset, så dette er bare punktene fra presentasjonen jeg brukte og koden i chunkene.

Øyvind Bugge Solheim https://www.oyvindsolheim.com (Institutt for samfunnsforskning (ISF))https://www.samfunnsforskning.no
09-21-2022

Last ned denne fila

Fila som lager denne nettsida og en powerpointpresentasjon er til gjengelig her og powerpointen er her.

“Kognitiv dissonans er bra!”

R Core Team (1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022)

(Hvis ikke hadde ingen likt R..)

Sette opp R og RStudio

Velkommen til RStudio

Det er fire områder i RStudio

Til venstre:

  1. Syntaksfeltet ligger øverst til venstre som standard

  2. Nederst til venstre ligger console. Der kommer outputen når man kjører kode


Til høyre:

  1. Øverst til høyre er det flere ulike faner men Environment er viktigst. Environment viser hvilke objekter dere har laget. For eksempel tabeller.

  1. Nederst til høyre er det også flere faner:

    1. Filer viser mappa dere er i (ikke sikkert det er mappa R forholder seg til)

    2. Plot viser figurene dere har laget.

    3. Packages viser alle pakkene dere har.

    4. Help viser hjelpedokumenter

    5. Viewer viser tabeller fra noen pakker

Hvordan løse problemene som oppstår?

Rstudio er best med prosjekter

Hvordan bruke R :


# Her kan man skrive R-kode
# Firkant lager kommentarer
# Stå under og trykk control (ctrl) + enter/linjeskift
1+1

# R kjører så langt som det er nødvendig. 
#Hvis koden ser ut til å fortsette 
# kjører R koden videre:
#prøv:
1+
  
  
  
10

# eller denne:
(55 
  
#Det kan til og med være kommentarer imellom  
  
-1)

R lagrer ingenting av seg selv


# Dette er kommentert tekst. Det blir ikke kjørt

resultat <- 44-11

# R bryr seg ikke om tall er tall 
# eller objekter som representerer tall:

resultat2 <- resultat + 11

#Her er det noe galt som dere ser 
# av den røde krysset til venstre. 
#Det mangler  noe som lagrer i resultat3. 
#Stå til høyre for resultat3 og trykk alt og - samtidig: 

resultat3 <- 44-2

#Ser dere "filene" bli lagret i "Environment" til venstre?

Andre nyttige snarveier:


123 + 123123
[1] 123246

Grunnleggende elementer

Laste inn pakker:


Laste inn pakker:

# Merk linjene under og bruk control shift c 
# til å fjerne kommentarfirkanten. 
#Det ikke nødvendig å installere pakker 
# når man allerede har gjort det.

# install.packages("here")
# install.packages("tidyverse")

Laste inn datasett

Laste inn fil

# Vi glemte å laste inn haven:
# Er det installert?
library(haven)

datasett <- readRDS(here("Data/kurs.rds"))

#csv osv.

Lagre datasett

  1. Stata
  2. Csv
  3. R

# Mappen Data må finnes
saveRDS(datasett,here("Data/fil.rds"))

#Får dere til å lage en statafil og en spss-fil?
# Test write_ og tab

Filer

De mest vanlige «filtypene» i R er:

  1. Rekker
  2. Tabeller
  3. Lister

Rekker

  1. Rekker
    1. Lages med c(): alder <-c(0,30,10)
    2. Eller tekst: kjonn<- c("m", "m", "f")
    3. Eller tallrekker 20:55

Tabeller

  1. Tabeller består av flere like lange rekker
    1. Kan lages med: tabell <-cbind(alder, kjonn)
  2. Lister kan bestå av mange ulike elementer, for eksempel både rekker, tabeller og lister
    1. alle_data <-list(tabell, alder, kjonn,"Lister blir ofte rotete")

alder <-c(0,30,10)
kjonn<- c("2", "2", "1")
20:55
tabell <-bind_cols("Alder" = alder, "Kjonn" = kjonn)
alle_data <-list("Tabell"=tabell, "Alder"=alder, Kjonn=kjonn)

Ofte er man interessert i enkeltelementer

Filer kan man som regel subsettes med brakker [] og nummer eller navn

alder[3]
kjonn[3]

Tabeller

tabell[3, 1]
tabell[2, "Alder"]

tabell[3,"Alder"] <- 7

tabell[tabell$Alder==7,"Kjonn"]

tabell$ID <- c(1,2,3)

tabell[,"ID2"] <- 1:3

tabell[,c("ID","Alder")]


tabell$lope <- 1:dim(tabell)[1]

Lister

alle_data[[44]] <- "bla bla"

alle_data[[3]]

alle_data[["Tabell"]]

Enkeltvariabler

tabell$Alder

TRUE og FALSE

tabell[c(FALSE, TRUE, FALSE), "Alder"]

tabell[tabell$Alder>0, "Alder"]

Typer objekter

I tabeller er det særlig fire typer elementer


# Vi kan bytte mellom:

storre_enn_fem<- tabell$Alder > 5

# TRUE blir forstått som 1 når man regner 
# og FALSE som 0

sum(storre_enn_fem,na.rm=T)

storre_enn_fem+1

mean(storre_enn_fem,na.rm=T)

#Vi kan lage factorer og bestemme nivåene:
tabell$Kjonn<- factor(tabell$Kjonn, levels=c("2","1"),labels=c("mann","kvinne"))

as.character(tabell$Kjonn)

as.numeric(tabell$Kjonn)

Factorer er litt komplisert


#Bruk relevel til å gjøre mann til 
# referansekategori i tabell$Kjonn  

Programmer

Programmer bruker parentes. Inne i parentesen spesifiserer man hva man vil at programmet skal gjøre.

Bruk round() til å runde av med to desimaler

?round

??round

#Her er det altfor mange desimaler R 
# må hjelpe oss:
#round( og tab er også nyttig

0.345436598763457834

Spesialfunksjoner

Boleansk algebra


30 %in% tabell$Alder

tabell$Alder == 30
tabell$Alder != 0
tabell$Alder <= 10

tabell$Alder == 0

tabell$Alder <= 10 & tabell$Alder >0

tabell$Alder <= 5 | tabell$Alder >25

# vi kan bruke dette til å subsette datasett:
tabell[tabell$Alder < 5 | tabell$Alder >=25,]

Enkel databehandling


1+1
2+1
3+1
4+1
1+1
2+1
3+1
4+1

tall<-1:10000000
tall+1
rm(tall)

Flere ressurser:

data.table

Citation

For attribution, please cite this work as

Solheim (2022, Sept. 21). Solheim: R-kurs 1: Hvordan komme igang med R. Retrieved from https://www.oyvindsolheim.com/code/R kurs runde 1/

BibTeX citation

@misc{solheim2022r-kurs,
  author = {Solheim, Øyvind Bugge},
  title = {Solheim: R-kurs 1: Hvordan komme igang med R},
  url = {https://www.oyvindsolheim.com/code/R kurs runde 1/},
  year = {2022}
}